package com.topscomm.main.config;

import java.util.Properties;

import org.springframework.amqp.core.Queue;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

import com.topscomm.file.util.YamUtil;

/**
 * 中心配置
 * 
 * @description:
 * @author: donghang
 * @date: 2020年8月20日下午3:14:38
 * @modify:
 */
@Configuration
public class CenterServerConfiguration {
	@Value("${spring.profiles.active}")
	private String active;
	@Value("${rabbitmq.fileprocess.queuename}")
	private String fileQueue;

	/**
	 * 实例化文件处理消息队列
	 * 
	 * @description:
	 * @return
	 * @author: donghang
	 * @date: 2020年8月20日下午3:16:05
	 * @modify:
	 */
	@Bean
	public Queue fileMessageQueue() {
		return new Queue(this.fileQueue);
	}

	/**
	 * yml配置文件
	 * 
	 * @description:
	 * @return
	 * @author: donghang
	 * @date: 2020年8月21日上午11:24:51
	 * @modify:
	 */
	@Bean
	public YamUtil ymlUtil() {
		Resource app = new ClassPathResource("application-" + active + ".yml");
		YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean();
		// 2:将加载的配置文件交给 YamlPropertiesFactoryBean
		yamlPropertiesFactoryBean.setResources(app);
		// 3：将yml转换成 key：val
		Properties properties = yamlPropertiesFactoryBean.getObject();
		// 4: 将Properties 通过构造方法交给我们写的工具类
		YamUtil ymlConfigurerUtil = new YamUtil(properties);
		return ymlConfigurerUtil;
	}

}
